/* Este arquivo é parte do OSBiblio.
 * Copyright (C) 2014 (Pedro Saraiva, Túlio Vidal, Luís Henrique, Adriano Lima, Oziel Pereira,
 * Marcos Ellys, Francisco Júnior, Fátima Pinheiro, Darly Vinicio).
 *
 * OSBiblio é um software livre; você pode redistribuí-lo e/ou  modificá-lo dentro dos termos da 
 * Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença,
 * ou (na sua opinião) qualquer versão.
 *
 * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia 
 * implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU
 * para maiores detalhes.
 */
package br.edu.situacaocheque;

import br.edu.situacao.*;
import br.edu.banco.*;
import br.edu.situacao.Situacao;
import java.util.*;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author tulio.xcrtf
 */
@SuppressWarnings("serial")
public class SituacaoChequeTableModel extends AbstractTableModel {

    private String[] nomeColunas = {"Código", "Data", "Situação", "Observação", "Cliente", "TEL1", "TEL2"};
    private List<SituacaoCheque> situacoes;

    /**
     * Construtor padrão.
     */
    public SituacaoChequeTableModel() {
        //acervos = new LinkedList<Acervo>();
    }

    /**
     * Construtor sobrecarregado.
     *
     * @param list List(Acervo).
     */
    public SituacaoChequeTableModel(List<SituacaoCheque> lista) {
        //this();
        situacoes = new ArrayList(new HashSet(lista));
        Collections.sort(situacoes);
        //this.acervos.clear();
        //this.acervos.addAll(lista);
        super.fireTableDataChanged();
    }

    /**
     * Método sobrescrito.
     *
     * @return int.
     */
    @Override
    public int getRowCount() {
        return situacoes.size();
    }

    /**
     * Método sobrescrito.
     *
     * @return int.
     */
    @Override
    public int getColumnCount() {
        return nomeColunas.length;
    }

    /**
     * Método sobrescrito.
     *
     * @param rowIndex int
     * @param columnIndex int.
     * @return Object.
     */
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        SituacaoCheque situacao = situacoes.get(rowIndex);
        switch (columnIndex) {
            case 0:
                return situacao.getId();
            case 1:
                return situacao.getData();
            case 2:
                return situacao.getSituacao().getDescricao();
            case 3:
                return situacao.getObservacao();
            case 4:
                return situacao.getCheque().getCliente().getNome();
            case 5:
                return situacao.getCheque().getCliente().getTelefone1();
            case 6:
                return situacao.getCheque().getCliente().getTelefone2();

        }
        return null;
    }

    /**
     * Método sobrescrito.
     *
     * @param column int.
     * @return String nomeColunas[index].
     */
    @Override
    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return nomeColunas[0];
            case 1:
                return nomeColunas[1];
            case 2:
                return nomeColunas[2];
            case 3:
                return nomeColunas[3];
            case 4:
                return nomeColunas[4];
            case 5:
                return nomeColunas[5];
            case 6:
                return nomeColunas[6];

        }
        return null;
    }
}
